package com.jfs.zlk.entity.request;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

/**
 * @Description 设置服务器配置请求参数
 * @E-mail cwm3412638@163.com
 * @Author cwm
 * @Date 2022/8/2
 */
@Data
public class RequestSetServerConfig extends BaseRequest{
    /**
     * 是否开启http hook
     */
    @JSONField(name = "hook.enable")
    private Integer enable;
    /**
     *流量统计事件，播放器或推流器断开时并且耗用流量超过特定阈值时会触发此事件
     */
    @JSONField(name = "hook.on_flow_report")
    private String onFlowReport;

    /**
     * 播放器鉴权事件，rtsp/rtmp/http-flv/ws-flv/hls的播放都将触发此鉴权事件； 如果流不存在，那么先触发on_play事件然后触发on_stream_not_found事件。
     * 播放rtsp流时，如果该流启动了rtsp专属鉴权(on_rtsp_realm)那么将不再触发on_play事件。
     */
    @JSONField(name = "hook.on_play")
    private String onPlay;
    /**
     * 访问http文件服务器上hls之外的文件时触发。
     */
    @JSONField(name = "hook.on_http_access")
    private String onHttpAccess;
    /**
     * rtsp/rtmp/rtp推流鉴权事件。
     */
    @JSONField(name = "hook.on_publish")
    private String onPublish;
    /**
     * 录制mp4完成后通知事件；此事件对回复不敏感。
     */
    @JSONField(name = "hook.on_record_mp4")
    private String onRecordMp4;

    /**
     * 该rtsp流是否开启rtsp专用方式的鉴权事件，开启后才会触发on_rtsp_auth事件。
     *
     * 需要指出的是rtsp也支持url参数鉴权，它支持两种方式鉴权。
     */
    @JSONField(name = "hook.on_rtsp_auth")
    private String onRtspAuth;
    /**
     * 该rtsp流是否开启rtsp专用方式的鉴权事件，开启后才会触发on_rtsp_auth事件。
     *
     * 需要指出的是rtsp也支持url参数鉴权，它支持两种方式鉴权。
     */
    @JSONField(name = "hook.on_rtsp_realm")
    private String onRtspRealm;
    /**
     * 服务器启动事件，可以用于监听服务器崩溃重启；此事件对回复不敏感。
     */
    @JSONField(name = "hook.on_server_started")
    private String onServerStarted;
    /**
     * shell登录鉴权，ZLMediaKit提供简单的telnet调试方式
     *
     * 使用telnet 127.0.0.1 9000能进入MediaServer进程的shell界面
     */
    @JSONField(name = "hook.on_shell_login")
    private String onShellLogin;
    /**
     * rtsp/rtmp流注册或注销时触发此事件；此事件对回复不敏感。
     */
    @JSONField(name = "hook.on_stream_changed")
    private String onStreamChanged;

    /**
     * 流无人观看时事件，用户可以通过此事件选择是否关闭无人看的流
     */
    @JSONField(name = "hook.on_stream_none_reader")
    private String onStreamNoneReader;

    /**
     * 流未找到事件，用户可以在此事件触发时，立即去拉流，这样可以实现按需拉流；此事件对回复不敏感。
     */
    @JSONField(name = "hook.on_stream_not_found")
    private String onStreamNotFound;

    /**
     * 服务器定时上报时间，上报间隔可配置，默认10s上报一次
     */
    @JSONField(name = "hook.on_server_keepalive")
    private String onServerKeepalive;

    /**
     * 事件触发http post超时时间。
     */
    @JSONField(name = "hook.timeoutSec")
    private String timeoutSec;
}
